Krótkie podsumowanie

Wynikiem przeprowadzonych badań jest stworzony model predykcji wytworzonej energii przez panel słoneczny w danej godzinie na podstawie informacji dostarczonych przez czujnik znajdujący się przy nim. Badania pokazują, że z dużą pewnością można przewidzieć ilość wyprodukowanej energii na podstawie stanu pogody zanotowanego przez czujnik przy panelu. Kluczowymi atrybutami okazały się nasłonecznienie, zachmurzenie i wilgotność, co nie jest szokujące. Ważną obserwacją jest również cykliczność średniej wyprodukowanej energii przez panel słoneczny w ciągu roku. W miesiącach zimowych panele produkują znacznie mniej energii niż w miesiącach letnich, czasami bardzo znikome ilości. Badania pokazują, że idealne miejsce na umiejscowienie panelu słonecznego to takie, które ma duże nasłonecznienie podczas całego roku i gdzie niebo jest bezchmurne.

Wstęp, Rozmiar zbioru i podstawowe statystyki.

Celem przeprowadzonych badań było stworzenie regresora pozwalającego jak najlepiej przewidzieć ilość wyprodukowanej energii przez panel słoneczny w danej godzinie, na podstawie dostarczonych informacji. Dane zawierają 235790 obserwacji, po 50 atrybutów każda. Poniżej znajduje się próba opisania wszystkich atrybutów wraz z krótkimi statystykami dotyczącymi rozkładu ich wartości.

Dane czujnika

lapply(solar_data[, c('idsito', 'idmodel', 'idbrand', 'ageinmonths')], summary)
## $idsito
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.1000  0.2250  0.2147  0.3250  0.4250 
## 
## $idmodel
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.1670  0.2080  0.2426  0.2920  0.7500 
## 
## $idbrand
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0830  0.1670  0.1519  0.1670  0.4170 
## 
## $ageinmonths
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.1250  0.3145  0.7190  1.0000

Pierwsze 3 zawierają informacje o identyfikatorze, modelu i marce czujnika. W tym zbiorze można wyróżnić 17 czujników, o 11 różnych modelach, wyprodukowanych przez 6 różnych producentów. Wszystkie wartości tych atrybutów zostały znormalizowane i zawierają się w przedziale <0:1>. Czwarty atrybut (tak samo znormalizowany) opisuje wiek danego czujnika, jego wartość jest stała dla każdego idsito.

Czas

lapply(solar_data[, c('anno', 'day', 'ora', 'data')], summary)
## $anno
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    2012    2012    2012    2012    2013    2013 
## 
## $day
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.2520  0.4770  0.4812  0.7100  1.0000 
## 
## $ora
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.222   0.500   0.500   0.778   1.000 
## 
## $data
##                  Min.               1st Qu.                Median 
## "2012-01-02 02:00:00" "2012-07-02 11:45:00" "2012-12-31 23:00:00" 
##                  Mean               3rd Qu.                  Max. 
## "2012-12-31 22:44:54" "2013-07-02 11:15:00" "2013-12-31 20:00:00" 
##                  NA's 
##                  "34"

Powyższe atrybuty opisują czas dokonania pomiaru. Anno określa rok dokonania pomiaru i przyjmuje dwie wartości; 2012 i 2013. Day, jak sama nazwa wskazuje, określa dzień dokonania pomiaru. Przyjmuje 365 różnych wartości, co sugeruje, że odzwierciedla kalendarzowy dzień dla danego roku. Atrybut ora przyjmuje 19 różnych wartości, co sugeruje, że pomiary były dokonywane w 19 różnych godzinach dla różnych dób. Po przylrzeniu się wartościom atrybutu data można zauważyć, że pomiary dla każdego dnia były przeprowadzane w godzinach 2:00 - 20:00, co godzinę. Ostatni atrybut zawiera informacje zawarte w trzech poprzednich; rok, dzień, godzinę dokonania pomiaru w bardziej przystępnej postaci - jako (nieznormalizowany) ciąg znaków.

Położenie

lapply(solar_data[, c('lat', 'lon')], summary)
## $lat
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.4150  0.4370  0.4370  0.4495  0.4390  0.5530 
## 
## $lon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1540  0.6200  0.6240  0.5711  0.6300  0.6910

Powyższe atrybuty opisują fizyczne położenie czujników. Wartości atrybutu lat opisują szerokość geograficzną, a lon długość. Zakres wartości atrybutu lat to <0.415:0.553>, co sugeruje, że czujniki położone były na podobnej szerokości geograficznej.

Warunki atmosferyczne

lapply(solar_data[, c('temperatura_ambiente', 'irradiamento', 'pressure', 'windspeed', 'humidity', 'dewpoint', 'windbearing', 'cloudcover', 'irr_pvgis_mod', 'icon')], summary)
## $temperatura_ambiente
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0450  0.2120  0.3480  0.3734  0.5300  0.8180 
## 
## $irradiamento
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0350  0.1091  0.2040  0.7100 
## 
## $pressure
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.7480  0.7530  0.6504  0.7550  0.7690 
## 
## $windspeed
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## 0.00000 0.04200 0.06600 0.07622 0.10200 0.69600 
## 
## $humidity
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1600  0.5400  0.7000  0.6844  0.8400  1.0000 
## 
## $dewpoint
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1390  0.5350  0.6190  0.6055  0.6830  0.8650 
## 
## $windbearing
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.3000  0.4780  0.4512  0.6600  0.7690 
## 
## $cloudcover
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.230   0.310   0.359   0.510   1.000 
## 
## $irr_pvgis_mod
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0560  0.1767  0.3250  1.0000 
## 
## $icon
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0830  0.6670  0.4623  0.6670  0.7500

Powyższe atrybuty opisują aktualną pogodę “mierzoną” podczas zapisu danych przez czujnik. Opisują odpowiednio: temperaturę powietrza, stopień nasłonecznienia, ciśnienie atmosferyczne, prędkość wiatru, wilgotność, temperaturę punktu rosy, zachmurzenie i ponownie stopień nasłonecznienia, tym razem generowany przez pogodowe API (Photovoltaic Geographical Information System). Ostatnia zmienna (icon) przyjmuje tylko 7 różnych wartości, co sugeruje, że może reprezentować “obecny stan pogody” (ikonę), obliczany przez czujnik lub, co jest bardziej prawdopodobne, dostarczany przez pogodowe API. Zdroworozsądkowo nasłonecznienie powinno pełnić kluczową rolę przy generowaniu energii przez panele słoneczne, zatem podwojenie obserwacji w tym przypadku zdaje się być całkowicie uzasadnione; umożliwa to wyeliminowanie potencjalnych błędnych pomiarów.

Położenie słońca

lapply(solar_data[, c('altitude', 'azimuth', 'dist')], summary)
## $altitude
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1110  0.4190  0.5640  0.5464  0.6810  0.8840 
## 
## $azimuth
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1280  0.2950  0.4250  0.4546  0.6350  0.8180 
## 
## $dist
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.1913  0.4590  0.4686  0.7268  1.0000

Azimuth to azymut, czyli kąt zawarty między północną częścią południka odniesienia a danym kierunkiem poziomym. Zmienna altitude opisuje wysokość, prawdopodobnie słońca nad horyzontem, ponieważ jej wartości rosną do godzin południowych, a następnie maleją. Zmienna dist jest taka sama dla wszystkich czujników oraz zmienia się każdego dnia. Przyglądając się wykresowi zależności jej wartości od day(czyli dnia roku) łatwo zauważyć cykliczność. Prawdopodobnie określa ona odległość Ziemi od Słońca w danym dniu i nie pochodzi bezpośrednio od czujnika.

ggplot() + geom_line(data = solar_data, aes(x = day, y = dist)) + labs(title="Zmiana atrybutu dist w dniach roku")

PCNM

lapply(solar_data[, 33:47], summary)
## $pcnm1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.3770  0.3780  0.4224  0.3800  1.0000 
## 
## $pcnm2
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.2500  0.3770  0.3538  0.4220  0.9720 
## 
## $pcnm3
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.5510  0.6050  0.6045  0.7300  1.0000 
## 
## $pcnm4
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.3630  0.5310  0.5189  0.6340  1.0000 
## 
## $pcnm5
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.3310  0.4270  0.4165  0.4620  1.0000 
## 
## $pcnm6
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.3390  0.4930  0.4941  0.4930  1.0000 
## 
## $pcnm7
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0310  0.0520  0.1142  0.1140  1.0000 
## 
## $pcnm8
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.2040  0.4120  0.4034  0.5110  1.0000 
## 
## $pcnm9
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.5270  0.5320  0.5371  0.6000  1.0000 
## 
## $pcnm10
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.5530  0.6190  0.6276  0.7170  1.0000 
## 
## $pcnm11
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.2570  0.3270  0.3236  0.3270  1.0000 
## 
## $pcnm12
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.7480  0.7600  0.7568  0.8840  1.0000 
## 
## $pcnm13
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1370  0.6140  0.6140  0.6501  0.7380  1.0000 
## 
## $pcnm14
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.4320  0.4730  0.4893  0.5300  1.0000 
## 
## $pcnm15
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.6120  0.6140  0.5709  0.6150  1.0000

Atrybuty PCNM (z angielksiego Principal coordinates of neighbour matrices) to najprawdopodobniej zmienne pozwalające opisać dokładniej położenie każdego czujnika względem innych czujnikóW. Pozwalają na bardziej wnikliwą analizę położenia dla każdego z czujników poprzez stworzenie własnej macierzy sąsiedztwa dla każdego z nich. Wartości tych parametrów są stałe dla idsito.

Atrybuty *I

lapply(solar_data[, c(20:26, 30:32, 49)], summary)
## $tempi
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0090  0.0730  0.1110  0.1225  0.1260  0.9830 
## 
## $irri
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.108   0.216   0.220   0.222   0.222   1.000 
## 
## $pressurei
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## 0.000000 0.000000 0.000000 0.000237 0.000000 1.000000 
## 
## $windspeedi
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## 0.00000 0.03700 0.03800 0.03852 0.03900 1.00000 
## 
## $humidityi
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## 0.03400 0.04400 0.04400 0.06384 0.06200 0.57900 
## 
## $dewpointi
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0630  0.1140  0.1140  0.1194  0.1180  0.4150 
## 
## $windbearingi
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.3360  0.3360  0.3455  0.3390  1.0000 
## 
## $azimuth
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1280  0.2950  0.4250  0.4546  0.6350  0.8180 
## 
## $altitudei
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0960  0.1360  0.2055  0.2660  0.9820 
## 
## $azimuthi
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.2090  0.2880  0.3653  0.4820  1.0000 
## 
## $irri_pvgis_mod
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -0.0250  0.1580  0.1940  0.1967  0.2130  1.0060

Atrybuty pogodowe z i na końcu zapewne są wynikiem transformacji wartości tych samych atrybutów bez litery i. Wydaje się być prawdopodobne, że do obliczenia ich wartości posłużył, wspomniany w poprzedniej grupie atrybutów, aglorytm rozwiązujący problemem autokorelacji przestrzennej, wynikającej z bliskiego położenia czujnikóW.

Energia

lapply(solar_data["kwh"], summary)
## $kwh
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0490  0.1688  0.3320  1.0000

Ostatni analizowany atrybut to znormalizowana do przedziału <0:1> wartość wytworzonej energii przez dany czujnik w danym dniu o danej godzinie. Wartość tej zmiennej ma docelowo zostać “przewidziana” na podstawie wartości pozostałych parametrów.

Interaktywny wykres

solar_data_monthYear <-  solar_data %>% mutate(month_year = format(as.POSIXct(data), "%Y/%m")) %>% group_by(idsito, month_year) %>% summarise(sum_of_kwh = sum(kwh))
plot <- ggplot() + geom_line(data=solar_data_monthYear, aes(x=month_year, y=sum_of_kwh, group=idsito, color=factor(x = 1*idsito, labels=c(1:17)))) + labs(color="Legenda") + labs(title="Miesięczna produkcja energi dla czujników", x="year_month") +
theme(axis.text.x=element_text(angle=90, vjust=0.5), axis.title.x = element_text(vjust=2.5))
ggplotly(plot)

Powyższy interaktywny wykres pozwala porównać sumę wyprodukowanej energii przez czujniki w każdym miesiącu.

Analizując wykres można dojść do następujących wniosków: * czujniki ulegają awariom; potencjalne awarie występują w miejscach drastycznego spadku produkowanej energii do 0 (np. czujnik 16 w sierpniu 2013r., ), ··* krzywa miesięcznej sumy produkowanej energii dla grupy czujników ma podobny kształt, ··* część czujników odnotowała bardzo niską produkcję energii w styczniu 2013r., efekt ten mógł być spowodowany przykryciem ich przez śnieg ··* czujnik 10 zdecydowanie lepiej prosperował w ostatnim kwartale 2012 w porównaniu do reszty.

Przetwarzanie brakujących danych

Z niewyjaśnionych przyczyn 34 wartości zmiennej data zostało źle zapisanych po zmianie formatu tej kolumny z tekstu na POSIXct. Z racji że obserwacji tych jest garstka, zostały one usunięte.

W pierwotnym zbiorze problem pustych danych nie występuje - wszystkie dane na pierwszy rzut oka zdają się być racjonalne. Po analizie wykresu z poprzedniego rozdziału można zauważyć problem awarii czujnika, czyli brakujących pomiarów wyprodukowanej energii przez dany czujnik. Dla stworzenia najlepszego modelu predykcji należy zapewnić najlepszą jakość pomiarów dla atrybutów najsilniej skorelowanych z kwh. W związku z tym, brakujące pomiary kwh (gdy wartość wynosi 0), gdy nasłonecznienie ma wartość większą od 0 i takie, które zanotowały niezerową produkcję energii przy zerowym nasłonecznieniu należy rozważyć ponownie i przypisać im bardziej racjonalne wartości.

Obserwacjom, których kwh wynosiło 0, a nasłonecznienie było większe od zera przypisano średnią wartość wytworzonej energii w danej godzinie w danym tygodniu przez dany czujnik.

Korelacja atrybutów

Stworzono macierz korelacji pomiędzy (prawie)wszystkimi atrybutami (bez atrybutów: “data” oraz “idsito”) Analizując powyższą macierz pod kątem korelacji atrybutu kwh z pozostałymiy atrybutami można łatwo zauważyć odwrotną korelację z wartością humidity(wilgotność) co jest logiczne, ponieważ opad deszczu, któremu towarzyszą chmury, skutecznie zmniejsza ilość wytwarzanej energii przez panel słoneczny. Występuje również odwrotna korelacja z wartością atrybutu azimuthi.

Co najważniejsze, atrybut kwh jest skorelowany silnie z wartościami irri oraz irri_pvgis_mod, czyli atrybutami opisującymi nasłonecznienie.

Można także zauważyć na niektórych atrybutach słabą odwrotną korelację pomiędzy parami atrybut-atrybuti.

Próba stworzenia regresora

## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0395             nan     0.1000    0.0045
##      2        0.0358             nan     0.1000    0.0037
##      3        0.0327             nan     0.1000    0.0030
##      4        0.0301             nan     0.1000    0.0026
##      5        0.0280             nan     0.1000    0.0021
##      6        0.0261             nan     0.1000    0.0018
##      7        0.0246             nan     0.1000    0.0016
##      8        0.0232             nan     0.1000    0.0014
##      9        0.0220             nan     0.1000    0.0012
##     10        0.0210             nan     0.1000    0.0010
##     20        0.0157             nan     0.1000    0.0003
##     40        0.0127             nan     0.1000    0.0001
##     60        0.0115             nan     0.1000    0.0000
##     80        0.0110             nan     0.1000    0.0000
##    100        0.0106             nan     0.1000    0.0000
##    120        0.0104             nan     0.1000    0.0000
##    140        0.0102             nan     0.1000    0.0000
##    150        0.0101             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0390             nan     0.1000    0.0051
##      2        0.0349             nan     0.1000    0.0041
##      3        0.0315             nan     0.1000    0.0034
##      4        0.0286             nan     0.1000    0.0028
##      5        0.0262             nan     0.1000    0.0025
##      6        0.0242             nan     0.1000    0.0020
##      7        0.0226             nan     0.1000    0.0017
##      8        0.0212             nan     0.1000    0.0014
##      9        0.0199             nan     0.1000    0.0012
##     10        0.0190             nan     0.1000    0.0010
##     20        0.0135             nan     0.1000    0.0004
##     40        0.0105             nan     0.1000    0.0001
##     60        0.0097             nan     0.1000    0.0000
##     80        0.0091             nan     0.1000    0.0000
##    100        0.0088             nan     0.1000    0.0000
##    120        0.0085             nan     0.1000    0.0000
##    140        0.0082             nan     0.1000    0.0000
##    150        0.0081             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0387             nan     0.1000    0.0054
##      2        0.0343             nan     0.1000    0.0044
##      3        0.0307             nan     0.1000    0.0036
##      4        0.0277             nan     0.1000    0.0029
##      5        0.0252             nan     0.1000    0.0026
##      6        0.0231             nan     0.1000    0.0021
##      7        0.0214             nan     0.1000    0.0017
##      8        0.0199             nan     0.1000    0.0015
##      9        0.0186             nan     0.1000    0.0013
##     10        0.0175             nan     0.1000    0.0010
##     20        0.0122             nan     0.1000    0.0002
##     40        0.0095             nan     0.1000    0.0000
##     60        0.0086             nan     0.1000    0.0000
##     80        0.0080             nan     0.1000    0.0000
##    100        0.0076             nan     0.1000    0.0000
##    120        0.0072             nan     0.1000    0.0000
##    140        0.0070             nan     0.1000    0.0000
##    150        0.0069             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0395             nan     0.1000    0.0045
##      2        0.0358             nan     0.1000    0.0037
##      3        0.0327             nan     0.1000    0.0030
##      4        0.0301             nan     0.1000    0.0026
##      5        0.0280             nan     0.1000    0.0021
##      6        0.0262             nan     0.1000    0.0018
##      7        0.0246             nan     0.1000    0.0016
##      8        0.0232             nan     0.1000    0.0014
##      9        0.0220             nan     0.1000    0.0012
##     10        0.0210             nan     0.1000    0.0010
##     20        0.0157             nan     0.1000    0.0003
##     40        0.0127             nan     0.1000    0.0001
##     60        0.0115             nan     0.1000    0.0000
##     80        0.0110             nan     0.1000    0.0000
##    100        0.0106             nan     0.1000    0.0000
##    120        0.0104             nan     0.1000    0.0000
##    140        0.0102             nan     0.1000    0.0000
##    150        0.0101             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0391             nan     0.1000    0.0050
##      2        0.0350             nan     0.1000    0.0041
##      3        0.0316             nan     0.1000    0.0034
##      4        0.0286             nan     0.1000    0.0029
##      5        0.0263             nan     0.1000    0.0023
##      6        0.0243             nan     0.1000    0.0020
##      7        0.0227             nan     0.1000    0.0016
##      8        0.0211             nan     0.1000    0.0016
##      9        0.0199             nan     0.1000    0.0012
##     10        0.0189             nan     0.1000    0.0011
##     20        0.0134             nan     0.1000    0.0003
##     40        0.0105             nan     0.1000    0.0000
##     60        0.0096             nan     0.1000    0.0000
##     80        0.0091             nan     0.1000    0.0000
##    100        0.0087             nan     0.1000    0.0000
##    120        0.0084             nan     0.1000    0.0000
##    140        0.0081             nan     0.1000    0.0000
##    150        0.0080             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0387             nan     0.1000    0.0054
##      2        0.0343             nan     0.1000    0.0044
##      3        0.0307             nan     0.1000    0.0036
##      4        0.0277             nan     0.1000    0.0030
##      5        0.0253             nan     0.1000    0.0025
##      6        0.0231             nan     0.1000    0.0021
##      7        0.0213             nan     0.1000    0.0018
##      8        0.0198             nan     0.1000    0.0015
##      9        0.0186             nan     0.1000    0.0012
##     10        0.0175             nan     0.1000    0.0011
##     20        0.0120             nan     0.1000    0.0003
##     40        0.0093             nan     0.1000    0.0001
##     60        0.0085             nan     0.1000    0.0000
##     80        0.0079             nan     0.1000    0.0000
##    100        0.0075             nan     0.1000    0.0000
##    120        0.0072             nan     0.1000    0.0000
##    140        0.0068             nan     0.1000    0.0000
##    150        0.0067             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0395             nan     0.1000    0.0046
##      2        0.0358             nan     0.1000    0.0037
##      3        0.0327             nan     0.1000    0.0030
##      4        0.0301             nan     0.1000    0.0026
##      5        0.0280             nan     0.1000    0.0021
##      6        0.0261             nan     0.1000    0.0018
##      7        0.0246             nan     0.1000    0.0016
##      8        0.0232             nan     0.1000    0.0014
##      9        0.0220             nan     0.1000    0.0012
##     10        0.0209             nan     0.1000    0.0010
##     20        0.0156             nan     0.1000    0.0003
##     40        0.0126             nan     0.1000    0.0001
##     60        0.0115             nan     0.1000    0.0000
##     80        0.0109             nan     0.1000    0.0000
##    100        0.0106             nan     0.1000    0.0000
##    120        0.0104             nan     0.1000    0.0000
##    140        0.0102             nan     0.1000    0.0000
##    150        0.0101             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0390             nan     0.1000    0.0050
##      2        0.0348             nan     0.1000    0.0042
##      3        0.0313             nan     0.1000    0.0036
##      4        0.0285             nan     0.1000    0.0028
##      5        0.0260             nan     0.1000    0.0025
##      6        0.0240             nan     0.1000    0.0020
##      7        0.0223             nan     0.1000    0.0017
##      8        0.0210             nan     0.1000    0.0014
##      9        0.0198             nan     0.1000    0.0011
##     10        0.0188             nan     0.1000    0.0010
##     20        0.0134             nan     0.1000    0.0004
##     40        0.0106             nan     0.1000    0.0000
##     60        0.0097             nan     0.1000    0.0000
##     80        0.0092             nan     0.1000    0.0000
##    100        0.0088             nan     0.1000    0.0000
##    120        0.0085             nan     0.1000    0.0000
##    140        0.0082             nan     0.1000    0.0000
##    150        0.0081             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0387             nan     0.1000    0.0054
##      2        0.0342             nan     0.1000    0.0044
##      3        0.0306             nan     0.1000    0.0036
##      4        0.0276             nan     0.1000    0.0030
##      5        0.0251             nan     0.1000    0.0025
##      6        0.0230             nan     0.1000    0.0021
##      7        0.0213             nan     0.1000    0.0017
##      8        0.0198             nan     0.1000    0.0014
##      9        0.0185             nan     0.1000    0.0013
##     10        0.0175             nan     0.1000    0.0011
##     20        0.0121             nan     0.1000    0.0003
##     40        0.0094             nan     0.1000    0.0000
##     60        0.0085             nan     0.1000    0.0000
##     80        0.0080             nan     0.1000    0.0000
##    100        0.0075             nan     0.1000    0.0000
##    120        0.0072             nan     0.1000    0.0000
##    140        0.0069             nan     0.1000    0.0000
##    150        0.0068             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0396             nan     0.1000    0.0046
##      2        0.0359             nan     0.1000    0.0037
##      3        0.0328             nan     0.1000    0.0030
##      4        0.0303             nan     0.1000    0.0026
##      5        0.0281             nan     0.1000    0.0022
##      6        0.0263             nan     0.1000    0.0018
##      7        0.0247             nan     0.1000    0.0016
##      8        0.0233             nan     0.1000    0.0014
##      9        0.0222             nan     0.1000    0.0012
##     10        0.0212             nan     0.1000    0.0010
##     20        0.0158             nan     0.1000    0.0003
##     40        0.0128             nan     0.1000    0.0001
##     60        0.0116             nan     0.1000    0.0000
##     80        0.0110             nan     0.1000    0.0000
##    100        0.0106             nan     0.1000    0.0000
##    120        0.0104             nan     0.1000    0.0000
##    140        0.0102             nan     0.1000    0.0000
##    150        0.0101             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0392             nan     0.1000    0.0050
##      2        0.0351             nan     0.1000    0.0041
##      3        0.0315             nan     0.1000    0.0036
##      4        0.0287             nan     0.1000    0.0028
##      5        0.0263             nan     0.1000    0.0024
##      6        0.0242             nan     0.1000    0.0020
##      7        0.0226             nan     0.1000    0.0016
##      8        0.0211             nan     0.1000    0.0015
##      9        0.0200             nan     0.1000    0.0012
##     10        0.0190             nan     0.1000    0.0010
##     20        0.0135             nan     0.1000    0.0004
##     40        0.0106             nan     0.1000    0.0000
##     60        0.0097             nan     0.1000    0.0000
##     80        0.0091             nan     0.1000    0.0000
##    100        0.0087             nan     0.1000    0.0000
##    120        0.0084             nan     0.1000    0.0000
##    140        0.0081             nan     0.1000    0.0000
##    150        0.0080             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0388             nan     0.1000    0.0053
##      2        0.0343             nan     0.1000    0.0044
##      3        0.0308             nan     0.1000    0.0036
##      4        0.0278             nan     0.1000    0.0030
##      5        0.0252             nan     0.1000    0.0026
##      6        0.0231             nan     0.1000    0.0021
##      7        0.0214             nan     0.1000    0.0018
##      8        0.0198             nan     0.1000    0.0015
##      9        0.0186             nan     0.1000    0.0012
##     10        0.0175             nan     0.1000    0.0011
##     20        0.0122             nan     0.1000    0.0003
##     40        0.0093             nan     0.1000    0.0000
##     60        0.0084             nan     0.1000    0.0000
##     80        0.0079             nan     0.1000    0.0000
##    100        0.0074             nan     0.1000    0.0000
##    120        0.0070             nan     0.1000    0.0000
##    140        0.0068             nan     0.1000    0.0000
##    150        0.0067             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0395             nan     0.1000    0.0046
##      2        0.0358             nan     0.1000    0.0037
##      3        0.0328             nan     0.1000    0.0030
##      4        0.0302             nan     0.1000    0.0026
##      5        0.0280             nan     0.1000    0.0022
##      6        0.0262             nan     0.1000    0.0018
##      7        0.0247             nan     0.1000    0.0015
##      8        0.0233             nan     0.1000    0.0014
##      9        0.0221             nan     0.1000    0.0012
##     10        0.0211             nan     0.1000    0.0010
##     20        0.0157             nan     0.1000    0.0003
##     40        0.0127             nan     0.1000    0.0001
##     60        0.0115             nan     0.1000    0.0000
##     80        0.0109             nan     0.1000    0.0000
##    100        0.0106             nan     0.1000    0.0000
##    120        0.0103             nan     0.1000    0.0000
##    140        0.0102             nan     0.1000    0.0000
##    150        0.0101             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0390             nan     0.1000    0.0051
##      2        0.0349             nan     0.1000    0.0041
##      3        0.0314             nan     0.1000    0.0035
##      4        0.0286             nan     0.1000    0.0028
##      5        0.0262             nan     0.1000    0.0023
##      6        0.0242             nan     0.1000    0.0020
##      7        0.0225             nan     0.1000    0.0017
##      8        0.0211             nan     0.1000    0.0014
##      9        0.0200             nan     0.1000    0.0011
##     10        0.0190             nan     0.1000    0.0010
##     20        0.0134             nan     0.1000    0.0003
##     40        0.0105             nan     0.1000    0.0001
##     60        0.0097             nan     0.1000    0.0000
##     80        0.0092             nan     0.1000    0.0000
##    100        0.0088             nan     0.1000    0.0000
##    120        0.0085             nan     0.1000    0.0000
##    140        0.0082             nan     0.1000    0.0000
##    150        0.0081             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0387             nan     0.1000    0.0054
##      2        0.0343             nan     0.1000    0.0044
##      3        0.0307             nan     0.1000    0.0036
##      4        0.0277             nan     0.1000    0.0029
##      5        0.0251             nan     0.1000    0.0026
##      6        0.0231             nan     0.1000    0.0021
##      7        0.0214             nan     0.1000    0.0017
##      8        0.0199             nan     0.1000    0.0015
##      9        0.0186             nan     0.1000    0.0013
##     10        0.0175             nan     0.1000    0.0011
##     20        0.0121             nan     0.1000    0.0003
##     40        0.0093             nan     0.1000    0.0000
##     60        0.0085             nan     0.1000    0.0000
##     80        0.0079             nan     0.1000    0.0000
##    100        0.0075             nan     0.1000    0.0000
##    120        0.0072             nan     0.1000    0.0000
##    140        0.0069             nan     0.1000    0.0000
##    150        0.0068             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0396             nan     0.1000    0.0046
##      2        0.0359             nan     0.1000    0.0037
##      3        0.0328             nan     0.1000    0.0030
##      4        0.0302             nan     0.1000    0.0026
##      5        0.0281             nan     0.1000    0.0022
##      6        0.0262             nan     0.1000    0.0019
##      7        0.0247             nan     0.1000    0.0015
##      8        0.0233             nan     0.1000    0.0014
##      9        0.0221             nan     0.1000    0.0012
##     10        0.0211             nan     0.1000    0.0010
##     20        0.0157             nan     0.1000    0.0003
##     40        0.0127             nan     0.1000    0.0001
##     60        0.0115             nan     0.1000    0.0000
##     80        0.0110             nan     0.1000    0.0000
##    100        0.0106             nan     0.1000    0.0000
##    120        0.0104             nan     0.1000    0.0000
##    140        0.0102             nan     0.1000    0.0000
##    150        0.0101             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0391             nan     0.1000    0.0050
##      2        0.0349             nan     0.1000    0.0041
##      3        0.0314             nan     0.1000    0.0036
##      4        0.0286             nan     0.1000    0.0028
##      5        0.0261             nan     0.1000    0.0024
##      6        0.0241             nan     0.1000    0.0021
##      7        0.0224             nan     0.1000    0.0017
##      8        0.0210             nan     0.1000    0.0013
##      9        0.0199             nan     0.1000    0.0011
##     10        0.0189             nan     0.1000    0.0010
##     20        0.0133             nan     0.1000    0.0003
##     40        0.0105             nan     0.1000    0.0001
##     60        0.0097             nan     0.1000    0.0000
##     80        0.0092             nan     0.1000    0.0000
##    100        0.0087             nan     0.1000    0.0000
##    120        0.0084             nan     0.1000    0.0000
##    140        0.0081             nan     0.1000    0.0000
##    150        0.0080             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0387             nan     0.1000    0.0054
##      2        0.0343             nan     0.1000    0.0044
##      3        0.0308             nan     0.1000    0.0036
##      4        0.0278             nan     0.1000    0.0030
##      5        0.0252             nan     0.1000    0.0026
##      6        0.0232             nan     0.1000    0.0020
##      7        0.0214             nan     0.1000    0.0018
##      8        0.0200             nan     0.1000    0.0015
##      9        0.0187             nan     0.1000    0.0013
##     10        0.0176             nan     0.1000    0.0012
##     20        0.0121             nan     0.1000    0.0002
##     40        0.0093             nan     0.1000    0.0000
##     60        0.0085             nan     0.1000    0.0001
##     80        0.0079             nan     0.1000    0.0000
##    100        0.0075             nan     0.1000    0.0000
##    120        0.0071             nan     0.1000    0.0000
##    140        0.0068             nan     0.1000    0.0000
##    150        0.0067             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0394             nan     0.1000    0.0046
##      2        0.0357             nan     0.1000    0.0037
##      3        0.0327             nan     0.1000    0.0031
##      4        0.0301             nan     0.1000    0.0026
##      5        0.0279             nan     0.1000    0.0021
##      6        0.0260             nan     0.1000    0.0019
##      7        0.0245             nan     0.1000    0.0015
##      8        0.0231             nan     0.1000    0.0014
##      9        0.0219             nan     0.1000    0.0012
##     10        0.0209             nan     0.1000    0.0010
##     20        0.0156             nan     0.1000    0.0003
##     40        0.0126             nan     0.1000    0.0001
##     60        0.0115             nan     0.1000    0.0000
##     80        0.0109             nan     0.1000    0.0000
##    100        0.0106             nan     0.1000    0.0000
##    120        0.0104             nan     0.1000    0.0000
##    140        0.0102             nan     0.1000    0.0000
##    150        0.0101             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0390             nan     0.1000    0.0050
##      2        0.0348             nan     0.1000    0.0041
##      3        0.0313             nan     0.1000    0.0036
##      4        0.0284             nan     0.1000    0.0029
##      5        0.0260             nan     0.1000    0.0024
##      6        0.0240             nan     0.1000    0.0020
##      7        0.0223             nan     0.1000    0.0017
##      8        0.0209             nan     0.1000    0.0014
##      9        0.0198             nan     0.1000    0.0011
##     10        0.0188             nan     0.1000    0.0010
##     20        0.0133             nan     0.1000    0.0003
##     40        0.0105             nan     0.1000    0.0001
##     60        0.0096             nan     0.1000    0.0000
##     80        0.0091             nan     0.1000    0.0000
##    100        0.0088             nan     0.1000    0.0000
##    120        0.0085             nan     0.1000    0.0000
##    140        0.0082             nan     0.1000    0.0000
##    150        0.0081             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0386             nan     0.1000    0.0054
##      2        0.0342             nan     0.1000    0.0044
##      3        0.0306             nan     0.1000    0.0036
##      4        0.0276             nan     0.1000    0.0031
##      5        0.0250             nan     0.1000    0.0025
##      6        0.0230             nan     0.1000    0.0020
##      7        0.0212             nan     0.1000    0.0018
##      8        0.0197             nan     0.1000    0.0015
##      9        0.0184             nan     0.1000    0.0013
##     10        0.0174             nan     0.1000    0.0010
##     20        0.0120             nan     0.1000    0.0004
##     40        0.0093             nan     0.1000    0.0001
##     60        0.0085             nan     0.1000    0.0000
##     80        0.0079             nan     0.1000    0.0000
##    100        0.0074             nan     0.1000    0.0000
##    120        0.0071             nan     0.1000    0.0000
##    140        0.0068             nan     0.1000    0.0000
##    150        0.0067             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0396             nan     0.1000    0.0045
##      2        0.0359             nan     0.1000    0.0037
##      3        0.0329             nan     0.1000    0.0030
##      4        0.0303             nan     0.1000    0.0026
##      5        0.0282             nan     0.1000    0.0021
##      6        0.0263             nan     0.1000    0.0018
##      7        0.0248             nan     0.1000    0.0016
##      8        0.0234             nan     0.1000    0.0014
##      9        0.0222             nan     0.1000    0.0012
##     10        0.0212             nan     0.1000    0.0010
##     20        0.0158             nan     0.1000    0.0003
##     40        0.0128             nan     0.1000    0.0001
##     60        0.0116             nan     0.1000    0.0000
##     80        0.0110             nan     0.1000    0.0000
##    100        0.0106             nan     0.1000    0.0000
##    120        0.0104             nan     0.1000    0.0000
##    140        0.0102             nan     0.1000    0.0000
##    150        0.0101             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0391             nan     0.1000    0.0051
##      2        0.0350             nan     0.1000    0.0041
##      3        0.0316             nan     0.1000    0.0034
##      4        0.0287             nan     0.1000    0.0029
##      5        0.0263             nan     0.1000    0.0024
##      6        0.0243             nan     0.1000    0.0020
##      7        0.0226             nan     0.1000    0.0016
##      8        0.0212             nan     0.1000    0.0014
##      9        0.0200             nan     0.1000    0.0012
##     10        0.0190             nan     0.1000    0.0010
##     20        0.0135             nan     0.1000    0.0003
##     40        0.0105             nan     0.1000    0.0001
##     60        0.0097             nan     0.1000    0.0000
##     80        0.0091             nan     0.1000    0.0000
##    100        0.0088             nan     0.1000    0.0000
##    120        0.0085             nan     0.1000    0.0000
##    140        0.0082             nan     0.1000    0.0000
##    150        0.0081             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0388             nan     0.1000    0.0054
##      2        0.0344             nan     0.1000    0.0044
##      3        0.0308             nan     0.1000    0.0036
##      4        0.0279             nan     0.1000    0.0030
##      5        0.0254             nan     0.1000    0.0025
##      6        0.0233             nan     0.1000    0.0020
##      7        0.0216             nan     0.1000    0.0017
##      8        0.0201             nan     0.1000    0.0015
##      9        0.0188             nan     0.1000    0.0012
##     10        0.0178             nan     0.1000    0.0011
##     20        0.0121             nan     0.1000    0.0004
##     40        0.0094             nan     0.1000    0.0001
##     60        0.0086             nan     0.1000    0.0000
##     80        0.0080             nan     0.1000    0.0000
##    100        0.0075             nan     0.1000    0.0000
##    120        0.0072             nan     0.1000    0.0000
##    140        0.0069             nan     0.1000    0.0000
##    150        0.0068             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0395             nan     0.1000    0.0045
##      2        0.0358             nan     0.1000    0.0037
##      3        0.0328             nan     0.1000    0.0030
##      4        0.0302             nan     0.1000    0.0026
##      5        0.0280             nan     0.1000    0.0022
##      6        0.0262             nan     0.1000    0.0018
##      7        0.0247             nan     0.1000    0.0015
##      8        0.0233             nan     0.1000    0.0014
##      9        0.0221             nan     0.1000    0.0012
##     10        0.0211             nan     0.1000    0.0010
##     20        0.0158             nan     0.1000    0.0003
##     40        0.0127             nan     0.1000    0.0001
##     60        0.0116             nan     0.1000    0.0000
##     80        0.0110             nan     0.1000    0.0000
##    100        0.0107             nan     0.1000    0.0000
##    120        0.0104             nan     0.1000    0.0000
##    140        0.0102             nan     0.1000    0.0000
##    150        0.0102             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0390             nan     0.1000    0.0050
##      2        0.0349             nan     0.1000    0.0041
##      3        0.0315             nan     0.1000    0.0034
##      4        0.0286             nan     0.1000    0.0029
##      5        0.0262             nan     0.1000    0.0024
##      6        0.0241             nan     0.1000    0.0020
##      7        0.0225             nan     0.1000    0.0017
##      8        0.0211             nan     0.1000    0.0013
##      9        0.0199             nan     0.1000    0.0012
##     10        0.0190             nan     0.1000    0.0010
##     20        0.0134             nan     0.1000    0.0003
##     40        0.0106             nan     0.1000    0.0001
##     60        0.0097             nan     0.1000    0.0000
##     80        0.0092             nan     0.1000    0.0000
##    100        0.0088             nan     0.1000    0.0000
##    120        0.0085             nan     0.1000    0.0000
##    140        0.0082             nan     0.1000    0.0000
##    150        0.0081             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0387             nan     0.1000    0.0054
##      2        0.0343             nan     0.1000    0.0044
##      3        0.0308             nan     0.1000    0.0036
##      4        0.0278             nan     0.1000    0.0030
##      5        0.0252             nan     0.1000    0.0025
##      6        0.0232             nan     0.1000    0.0020
##      7        0.0214             nan     0.1000    0.0018
##      8        0.0199             nan     0.1000    0.0015
##      9        0.0186             nan     0.1000    0.0013
##     10        0.0176             nan     0.1000    0.0010
##     20        0.0121             nan     0.1000    0.0004
##     40        0.0094             nan     0.1000    0.0000
##     60        0.0085             nan     0.1000    0.0000
##     80        0.0079             nan     0.1000    0.0000
##    100        0.0075             nan     0.1000    0.0000
##    120        0.0072             nan     0.1000    0.0000
##    140        0.0068             nan     0.1000    0.0000
##    150        0.0067             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0396             nan     0.1000    0.0046
##      2        0.0358             nan     0.1000    0.0037
##      3        0.0328             nan     0.1000    0.0030
##      4        0.0302             nan     0.1000    0.0026
##      5        0.0280             nan     0.1000    0.0022
##      6        0.0261             nan     0.1000    0.0019
##      7        0.0246             nan     0.1000    0.0015
##      8        0.0232             nan     0.1000    0.0014
##      9        0.0220             nan     0.1000    0.0012
##     10        0.0210             nan     0.1000    0.0010
##     20        0.0156             nan     0.1000    0.0003
##     40        0.0126             nan     0.1000    0.0001
##     60        0.0115             nan     0.1000    0.0000
##     80        0.0109             nan     0.1000    0.0000
##    100        0.0106             nan     0.1000    0.0000
##    120        0.0103             nan     0.1000    0.0000
##    140        0.0101             nan     0.1000    0.0000
##    150        0.0101             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0390             nan     0.1000    0.0051
##      2        0.0349             nan     0.1000    0.0041
##      3        0.0314             nan     0.1000    0.0034
##      4        0.0285             nan     0.1000    0.0029
##      5        0.0261             nan     0.1000    0.0024
##      6        0.0241             nan     0.1000    0.0020
##      7        0.0224             nan     0.1000    0.0017
##      8        0.0211             nan     0.1000    0.0013
##      9        0.0199             nan     0.1000    0.0012
##     10        0.0188             nan     0.1000    0.0010
##     20        0.0133             nan     0.1000    0.0003
##     40        0.0105             nan     0.1000    0.0001
##     60        0.0096             nan     0.1000    0.0000
##     80        0.0091             nan     0.1000    0.0000
##    100        0.0087             nan     0.1000    0.0000
##    120        0.0083             nan     0.1000    0.0000
##    140        0.0081             nan     0.1000    0.0000
##    150        0.0080             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0387             nan     0.1000    0.0054
##      2        0.0343             nan     0.1000    0.0044
##      3        0.0306             nan     0.1000    0.0036
##      4        0.0276             nan     0.1000    0.0030
##      5        0.0252             nan     0.1000    0.0025
##      6        0.0231             nan     0.1000    0.0021
##      7        0.0213             nan     0.1000    0.0017
##      8        0.0199             nan     0.1000    0.0015
##      9        0.0186             nan     0.1000    0.0013
##     10        0.0175             nan     0.1000    0.0011
##     20        0.0119             nan     0.1000    0.0003
##     40        0.0092             nan     0.1000    0.0001
##     60        0.0084             nan     0.1000    0.0000
##     80        0.0078             nan     0.1000    0.0000
##    100        0.0074             nan     0.1000    0.0000
##    120        0.0071             nan     0.1000    0.0000
##    140        0.0068             nan     0.1000    0.0000
##    150        0.0067             nan     0.1000    0.0000
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        0.0387             nan     0.1000    0.0054
##      2        0.0343             nan     0.1000    0.0044
##      3        0.0307             nan     0.1000    0.0036
##      4        0.0276             nan     0.1000    0.0031
##      5        0.0251             nan     0.1000    0.0025
##      6        0.0230             nan     0.1000    0.0021
##      7        0.0213             nan     0.1000    0.0017
##      8        0.0198             nan     0.1000    0.0015
##      9        0.0186             nan     0.1000    0.0012
##     10        0.0175             nan     0.1000    0.0011
##     20        0.0122             nan     0.1000    0.0004
##     40        0.0094             nan     0.1000    0.0001
##     60        0.0085             nan     0.1000    0.0000
##     80        0.0080             nan     0.1000    0.0000
##    100        0.0076             nan     0.1000    0.0000
##    120        0.0072             nan     0.1000    0.0000
##    140        0.0069             nan     0.1000    0.0000
##    150        0.0068             nan     0.1000    0.0000

Przed przystąpieniem do stworzenia modelu regresji, ze zbioru danych usunięto pomiary dotyczące odstającego czujnika 10 oraz wadliwego czujnika 16. W ten sposób wyniki algorytmów predykcji będą bardziej rzetelne. Wartości rmse wyglądają następująco: ··* Regresja liniowa: 0.1087168 ··* Least angle regression: 0.1087013 ··* Uczenie maszynowe: 0.0826634

Stworzono 3 modele regresji używające metod: regresji liniowej, least angle regression, uczenia maszynowego. Najlepszy wyniki zanotowano dla ostatniego algorytmu, którego błąd średniokwadratowy wyniósł 0.0826634.

W fazie testowej wykorzystywano również algorytm random forest, którego błąd średniokwadratowy wypadał jeszcze lepiej, natomiast łatwo można było spostrzec jego przeuczenie, wynikające z przypisania największych wag atrybutom na zdrowy rozsądek mało istotnym (annoy, day, lat…).

Analiza modelu regresji

## gbm variable importance
## 
##   only 20 most important variables shown (out of 101)
## 
##                  Overall
## irradiamento   100.00000
## irri            13.29887
## ora              8.37887
## humidity         5.77718
## irri_pvgis_mod   2.79484
## azimuthi         2.38241
## cloudcover       2.05459
## icon             0.93046
## azimuth          0.82074
## anno             0.67172
## dist             0.49356
## idsito           0.45533
## ageinmonths      0.45441
## day              0.32006
## idmodel          0.26782
## tempi            0.25715
## pressure         0.24880
## week11           0.10624
## pcnm7            0.07939
## pcnm1            0.04980

Jak widać, do przewidzenia ilości wytworzonej energii przez panel słoneczny najlepiej nadają się dane dotyczące nasłonecznienia (irradiamento, irri), co nie jest żadnym zaskoczeniem. Dalej wymienione atrybuty są znacznie mniej istotne. Trzecim w kolejności (co ciekawe) atrybutem jest godzina (ora), co oznacza, że wytworzona energia jest podobna dla dwóch obserwacji dokonanych w różnych dnaich, ale o tych samych godzinach. Następne w kolejności atrybuty opisują wilgotność, nasłonecznienie, położenie słońca i zachmurzenie.